package com.blrs.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.blrs.common.annotation.Excel;
import com.blrs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 项目信息对象 project_initiation
 * 
 * @author ruoyi
 * @date 2024-05-15
 */
public class ProjectInitiation extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 项目id，主键 */
    private String projectId;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNumber;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 合同id */
    private String contractId;

    /** 合同名称 */
    @Excel(name = " ")
    private String contractName;

    /** 项目负责人id */
    private Long projectLeaderId;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String projectLeader;

    /** 客户id */
    private String enterpriseId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String enterpriseName;

    /** 产品id */
    private String productId;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 实施方式 */
    @Excel(name = "实施方式", readConverterExp = "0=本司执行,1=外协")
    private String embodiment;

    /** 立项款项id */
    private String projectFundingId;

    /** 已关联项目ids */
    private String alreadyProjectId;

    /** 是否超预算 */
    @Excel(name = "是否超预算", readConverterExp = "0=否,1=是")
    private Integer overBudget;

    /** 总预算 */
    @Excel(name = "总预算")
    private BigDecimal totalBudget;

    /** 总费用 */
    @Excel(name = "总费用")
    private BigDecimal totalCost;

    /** 计划开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date plannedStartTime;

    /** 计划结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date plannedEndTime;

    /** 实际开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualStartTime;

    /** 实际结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualEndTime;

    /** 状态 */
    @Excel(name = "状态", readConverterExp = "1=立项，2=策划，3=实施，4=交付，5=终止")
    private String state;

    /** 审核状态 */
    @Excel(name = "审核状态", readConverterExp = "0=未审核,1=已审核")
    private String auditState;

    /** 是否删除 */
    private String delFlag;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date operateTime;

    /** 操作人id */
    private Long operateId;

    /** 操作人姓名 */
    private String operateName;

    /** 部门id */
    private Long departmentId;

    /** 部门名称 */
    private String departmentName;

    /** 组织机构id */
    private Long organizationId;

    /** 组织机构名称 */
    private String organizationName;

    /** 创建人id */
    private Long creationId;

    /** 创建人姓名 */
    private String creationName;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /** 归属于 */
    private Long belongTo;

    // getter和setter方法
    public String getProjectId() {
        return projectId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    public String getProjectNumber() {
        return projectNumber;
    }

    public void setProjectNumber(String projectNumber) {
        this.projectNumber = projectNumber;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getContractId() {
        return contractId;
    }

    public void setContractId(String contractId) {
        this.contractId = contractId;
    }

    public String getContractName() {
        return contractName;
    }

    public void setContractName(String contractName) {
        this.contractName = contractName;
    }

    public Long getProjectLeaderId() {
        return projectLeaderId;
    }

    public void setProjectLeaderId(Long projectLeaderId) {
        this.projectLeaderId = projectLeaderId;
    }

    public String getProjectLeader() {
        return projectLeader;
    }

    public void setProjectLeader(String projectLeader) {
        this.projectLeader = projectLeader;
    }

    public String getEnterpriseId() {
        return enterpriseId;
    }

    public void setEnterpriseId(String enterpriseId) {
        this.enterpriseId = enterpriseId;
    }

    public String getEnterpriseName() {
        return enterpriseName;
    }

    public void setEnterpriseName(String enterpriseName) {
        this.enterpriseName = enterpriseName;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getEmbodiment() {
        return embodiment;
    }

    public void setEmbodiment(String embodiment) {
        this.embodiment = embodiment;
    }

    public String getProjectFundingId() {
        return projectFundingId;
    }

    public void setProjectFundingId(String projectFundingId) {
        this.projectFundingId = projectFundingId;
    }

    public String getAlreadyProjectId() {
        return alreadyProjectId;
    }

    public void setAlreadyProjectId(String alreadyProjectId) {
        this.alreadyProjectId = alreadyProjectId;
    }

    public Integer getOverBudget() {
        return overBudget;
    }

    public void setOverBudget(Integer overBudget) {
        this.overBudget = overBudget;
    }

    public BigDecimal getTotalBudget() {
        return totalBudget;
    }

    public void setTotalBudget(BigDecimal totalBudget) {
        this.totalBudget = totalBudget;
    }

    public BigDecimal getTotalCost() {
        return totalCost;
    }

    public void setTotalCost(BigDecimal totalCost) {
        this.totalCost = totalCost;
    }

    public Date getPlannedStartTime() {
        return plannedStartTime;
    }

    public void setPlannedStartTime(Date plannedStartTime) {
        this.plannedStartTime = plannedStartTime;
    }

    public Date getPlannedEndTime() {
        return plannedEndTime;
    }

    public void setPlannedEndTime(Date plannedEndTime) {
        this.plannedEndTime = plannedEndTime;
    }

    public Date getActualStartTime() {
        return actualStartTime;
    }

    public void setActualStartTime(Date actualStartTime) {
        this.actualStartTime = actualStartTime;
    }

    public Date getActualEndTime() {
        return actualEndTime;
    }

    public void setActualEndTime(Date actualEndTime) {
        this.actualEndTime = actualEndTime;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getAuditState() {
        return auditState;
    }

    public void setAuditState(String auditState) {
        this.auditState = auditState;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public Date getOperateTime() {
        return operateTime;
    }

    public void setOperateTime(Date operateTime) {
        this.operateTime = operateTime;
    }

    public Long getOperateId() {
        return operateId;
    }

    public void setOperateId(Long operateId) {
        this.operateId = operateId;
    }

    public String getOperateName() {
        return operateName;
    }

    public void setOperateName(String operateName) {
        this.operateName = operateName;
    }

    public Long getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(Long departmentId) {
        this.departmentId = departmentId;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public Long getOrganizationId() {
        return organizationId;
    }

    public void setOrganizationId(Long organizationId) {
        this.organizationId = organizationId;
    }

    public String getOrganizationName() {
        return organizationName;
    }

    public void setOrganizationName(String organizationName) {
        this.organizationName = organizationName;
    }

    public Long getCreationId() {
        return creationId;
    }

    public void setCreationId(Long creationId) {
        this.creationId = creationId;
    }

    public String getCreationName() {
        return creationName;
    }

    public void setCreationName(String creationName) {
        this.creationName = creationName;
    }

    public Date getCreationTime() {
        return creationTime;
    }

    public void setCreationTime(Date creationTime) {
        this.creationTime = creationTime;
    }

    public Long getBelongTo() {
        return belongTo;
    }

    public void setBelongTo(Long belongTo) {
        this.belongTo = belongTo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("projectId", getProjectId())
            .append("projectNumber", getProjectNumber())
            .append("projectName", getProjectName())
            .append("contractId", getContractId())
            .append("contractName", getContractName())
            .append("projectLeaderId", getProjectLeaderId())
            .append("projectLeader", getProjectLeader())
            .append("enterpriseId", getEnterpriseId())
            .append("enterpriseName", getEnterpriseName())
            .append("productId", getProductId())
            .append("productName", getProductName())
            .append("embodiment", getEmbodiment())
            .append("projectFundingId", getProjectFundingId())
            .append("alreadyProjectId", getAlreadyProjectId())
            .append("overBudget", getOverBudget())
            .append("totalBudget", getTotalBudget())
            .append("totalCost", getTotalCost())
            .append("plannedStartTime", getPlannedStartTime())
            .append("plannedEndTime", getPlannedEndTime())
            .append("actualStartTime", getActualStartTime())
            .append("actualEndTime", getActualEndTime())
            .append("state", getState())
            .append("auditState", getAuditState())
            .append("delFlag", getDelFlag())
            .append("operateTime", getOperateTime())
            .append("operateId", getOperateId())
            .append("operateName", getOperateName())
            .append("departmentId", getDepartmentId())
            .append("departmentName", getDepartmentName())
            .append("organizationId", getOrganizationId())
            .append("organizationName", getOrganizationName())
            .append("creationId", getCreationId())
            .append("creationName", getCreationName())
            .append("creationTime", getCreationTime())
            .append("belongTo", getBelongTo())
            .toString();
    }
} 